﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Manager.Camada.BancoDados;
using Manager.Camada.Negocio;
using Manager.Componente;
using System.Data;

namespace Manager.Formularios_Cadastro
{
    public partial class CadastroCliente : System.Web.UI.Page
    {
        ContatoDAOImpl daoContato = new ContatoDAOImpl();
        ClienteDAOImpl daoCliente = new ClienteDAOImpl();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (this.Page.IsPostBack == false)
            {
                UsuarioVO usuario = (UsuarioVO)Session["Usuario"];

                if (usuario != null)
                {
                    if (usuario.tipoUsuario.idTipo_Usuario == 1)
                        AccordionCadastroCliente.Visible = true;
                    else
                        AccordionCadastroCliente.Visible = false;

                    List<ClienteVO> listaCliente = daoCliente.buscaTodosClientePorIdEmpresa(usuario.empresa.idEmpresa);

                    if (listaCliente.Count > 0)
                    {
                        gwCliente.DataSource = listaCliente;
                        gwCliente.DataBind();
                    }
                }
                else
                {
                    this.Page.Response.Redirect("/Formulario_Erros/FinalSessao.aspx");
                }
            }
            else
            {
                UsuarioVO usuario = (UsuarioVO)Session["Usuario"];

                if (usuario != null)
                {

                    List<ClienteVO> listaCliente = daoCliente.buscaTodosClientePorIdEmpresa(usuario.empresa.idEmpresa);

                    if (listaCliente.Count > 0)
                    {
                        gwCliente.DataSource = listaCliente;
                        gwCliente.DataBind();
                    }

                    if (txtCep.Text != "")
                    {
                        string CEP = txtCep.Text.ToString();

                        DataSet ds = new DataSet();
                        ds.ReadXml(("http://cep.republicavirtual.com.br/web_cep.php?cep=" + (CEP.Replace("-", "").Replace(".", "").ToString() + "&formato=xml")));

                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            mountEnderecoCep(ds.Tables[0].Rows[0]);
                            txtNumero.Focus();
                        }
                        else
                        {

                        }

                    }
                }
                else
                {
                    this.Page.Response.Redirect("/Formulario_Erros/FinalSessao.aspx");
                }
            }   
        }

        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            //ContatoVO contato = new ContatoVO();

            //contato.idCliente = 3;
            //contato.departamento = txtDepartamento.Text;
            //contato.contato = txtContato.Text;
            //contato.email = txtEmail.Text;
            //contato.telefone = Convert.ToInt32(txtTelefone.Text.Replace("(", "").Replace(")", "").Replace("-", ""));

            //if (txtCelular.Text != "") 
            //contato.celular = Convert.ToInt32(txtCelular.Text.Replace("(", "").Replace(")", "").Replace("-", ""));

            //daoContato.inserirContato(contato);
        }

        private void mountEnderecoCep(DataRow dataRow)
        {
            txtEndereco.Text = dataRow["logradouro"].ToString();
            txtCidade.Text = dataRow["cidade"].ToString();
            txtBairro.Text = dataRow["bairro"].ToString();
            txtUf.Text = dataRow["uf"].ToString();
        }

        protected void gwCliente_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "VerContatos")
            {
                int index = int.Parse((string)e.CommandArgument);

                string idCliente = gwCliente.Rows[index].Cells[0].Text;

                this.Page.Response.Redirect("CadastroContato.aspx?ClientA=" + idCliente);
            }
            else
            {

            }
        }

        protected void btSalvar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                UsuarioVO usuario = (UsuarioVO)Session["Usuario"];

                ClienteVO cliente = new ClienteVO();

                cliente.empresa = usuario.empresa;
                cliente.nome = txtEmpresa.Text;
                cliente.nomeFantasia = txtNomeFantasia.Text;
                cliente.cep = Convert.ToInt32(txtCep.Text);
                cliente.endereco = txtEndereco.Text;
                cliente.numero = Convert.ToInt32(txtNumero.Text);
                cliente.bairro = txtBairro.Text;
                cliente.cidade = txtCidade.Text;
                cliente.uf = txtUf.Text;
                cliente.observacao = txtObservacao.Text;

                daoCliente.inserirCliente(cliente);

                this.limparCampos();

                List<ClienteVO> listaCliente = daoCliente.buscaTodosClientePorIdEmpresa(usuario.empresa.idEmpresa);

                if (listaCliente.Count > 0)
                {
                    gwCliente.DataSource = listaCliente;
                    gwCliente.DataBind();
                }

            }
            catch
            {
            }
        }

        private void limparCampos()
        {
            txtEmpresa.Text = "";
            txtNomeFantasia.Text = "";
            txtCep.Text = "";
            txtEndereco.Text = "";
            txtNumero.Text = "";
            txtBairro.Text = "";
            txtCidade.Text = "";
            txtUf.Text = "";
            txtObservacao.Text = "";
        }

        protected void btLimpar_Click(object sender, ImageClickEventArgs e)
        {
            limparCampos();
        }
    }
}